package com.example.design.patterns.geekbang.行为型.模板模式.复用;

import java.io.IOException;

public class ByteArrayInputStream extends InputStream {
    //...省略其他代码...
    private int pos;
    private int count;
    private int[] buf;

    @Override
    public synchronized int read() {

        return (pos < count) ? (buf[pos++] & 0xff) : -1;
    }

    /**
     * Closes this stream and releases any system resources associated
     * with it. If the stream is already closed then invoking this
     * method has no effect.
     *
     * <p> As noted in {@link AutoCloseable#close()}, cases where the
     * close may fail require careful attention. It is strongly advised
     * to relinquish the underlying resources and to internally
     * <em>mark</em> the {@code Closeable} as closed, prior to throwing
     * the {@code IOException}.
     *
     * @throws IOException if an I/O error occurs
     */
    @Override
    public void close() throws IOException {

    }
}